﻿/*
 ***************************************************************************
 * Microsoft Visual C# .NET
 * 名称：       Shpm.App.Input.Dao.HealthVisitPlanDao
 * 类型：       家访计划管理画面 数据库操作层
 * 功能说明：   家访计划功能 检索 登录
 * 作者：       黄鑫
 * 创建日期：   2007/09/12
 * 修改日期     修改者      修改内容
 * 
 * 
 * ---
 ***************************************************************************
*/
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using Shpm.System.Db;
using Shpm.App.Commons.Db.Beans.Master;
using Shpm.App.Commons.Db.Beans.Inp;
using Shpm.App.Input.Bean;
using Shpm.App.Master.Bean;


/// <summary>
/// Summary description for HealthVisitPlanDao
/// </summary>
namespace Shpm.App.Input.Dao
{
    public class HealthVisitPlanDao : ShpmBaseDao
    {
        public HealthVisitPlanDao() { }       

        // 从数据字典中取得画面列表项内容
        public const string FIND_BY_CATALOG = "CommonDictionary.FindByCatalog";

        // 家访计划 list
        public const string LST_RESULT = "HealthVisitPlan.LstResult";

        // 家访计划 find
        public const string FIND = "HealthVisitPlan.LstResult";

        // 家访计划 check
        public const string CHECK_RESULT = "HealthVisitPlan.ChkResult";

        // 家访计划 insert
        public const string INSERT_MEMBER_VISIT = "HealthVisitPlan.InsResult";

        // 家访计划 update
        public const string UPDATE_MEMBER_VISIT = "HealthVisitPlan.UpdPlan";

        // 家访计划(结果) update
        public const string UPDATE_MEMBER_VISIT_RESULT = "HealthVisitPlan.UpdResult";

        // 家访计划(上级意见) update
        public const string UPDATE_MEMBER_VISIT_SUPERIOR = "HealthVisitPlan.UpdSuperiorOpinion";

        // 家访计划完成 finish
        public const string FINISH_MEMBER_VISIT = "HealthVisitPlan.FinPlan";

        // 家访周期 update
        public const string UPDATE_MEMBER_FREQUENCY = "HealthVisitPlan.UpdFrequency";

        // 家访计划 delete
        public const string DELETE_MEMBER_VISIT = "HealthVisitPlan.DelPlan";
       
        /*
         *名称： FindByCatalog
         *功能： 取得数据字典列表对象。
         *参数： paramBean - 检索参数
         *返回： 数据字典列表 
         *说明： 从数据字典中取得画面列表项内容
        */
        public IList FindByCatalog(CommonDictionaryBean paramBean)
        {
            return base.QueryForList(FIND_BY_CATALOG, paramBean);
        }

        /*
         *名称： ListMemberVISIT
         *功能： 取得家访计划列表对象。
         *参数： paramBean - 检索参数
         *返回： 家访计划列表 
         *说明： 从家访计划中取得画面列表项内容
        */
        public IList ListMemberVisit(HealthVisitPlanBean paramBean)
        {
            return base.QueryForList(LST_RESULT, paramBean);
        }

        /*
         *名称： ChkResult
         *功能： 取得家访计划列表对象。
         *参数： paramBean - 检索参数
         *返回： 家访计划列表 
         *说明： 从家访计划中取得过滤列表项内容
        */
        public IList ChkResult(HealthVisitPlanBean paramBean)
        {
            return base.QueryForList(CHECK_RESULT, paramBean);
        }

        /*
       *名称： FindByMemberVISIT
       *功能： 取得家访计划对象。
       *参数： paramBean - 检索参数
       *返回： 家访计划对象 
       *说明： 取得家访计划信息 get by id
      */
        public HealthVisitPlanBean Find(HealthVisitPlanBean paramBean)
        {
            return (HealthVisitPlanBean)base.QueryForObject(FIND, paramBean);
        }

        /*
         *名称： Insert
         *功能： 登录家访计划对象。
         *参数： paramBean - 登录对象
         *返回： 登录的对象
         *说明： 家访计划 insert 
        */
        public Object Insert(HealthVisitPlanBean paramBean)
        {
            try
            {
                base.BeginTransaction();
                Object result = base.Insert(INSERT_MEMBER_VISIT, paramBean);
                base.Update(UPDATE_MEMBER_FREQUENCY, paramBean);
                base.CommitTransaction();
                return result;
            }
            catch (Exception e)
            {
                base.RollBackTransaction();
                throw e;
            }

        }

        /*
         *名称： Insert
         *功能： 登录家访计划对象。
         *参数： paramBean - 登录对象
         *返回： 登录的对象
         *说明： 家访计划 insert 
        */
        public Object Insert(HealthVisitPlanBean paramBean,Boolean updFlg)
        {
            if (updFlg)
            {
                try
                {
                    base.BeginTransaction();
                    Object result = base.Insert(INSERT_MEMBER_VISIT, paramBean);
                    base.Update(UPDATE_MEMBER_FREQUENCY, paramBean);
                    base.CommitTransaction();
                    return result;
                }
                catch (Exception e)
                {
                    base.RollBackTransaction();
                    throw e;
                }
            }
            else
            {
                return base.Insert(INSERT_MEMBER_VISIT, paramBean);
            }

        }

        /*
         *名称： Update
         *功能： 更新家访计划对象。
         *参数： paramBean - 更新对象
         *返回： 更新记录数
         *说明： 家访计划 update 
        */
        public void Update(HealthVisitPlanBean paramBean)
        {
            try
            {
                base.BeginTransaction();
                base.Update(UPDATE_MEMBER_FREQUENCY,paramBean);
                base.Update(UPDATE_MEMBER_VISIT, paramBean);
                base.CommitTransaction();
            }
            catch(Exception e)
            {
                base.RollBackTransaction();
                throw e;
            }
        }

        /*
         *名称： Update
         *功能： 更新家访计划对象。
         *参数： paramBean - 更新对象
         *返回： 更新记录数
         *说明： 家访计划 update 
        */
        public int UpdateResult(HealthVisitPlanBean paramBean)
        {
            return base.Update(UPDATE_MEMBER_VISIT_RESULT, paramBean);
        }
        /*
         *名称： Update
         *功能： 更新家访计划对象。
         *参数： paramBean - 更新对象
         *返回： 更新记录数
         *说明： 家访计划 update 
        */
        public int UpdateSuperiorOpinion(HealthVisitPlanBean paramBean)
        {
            return base.Update(UPDATE_MEMBER_VISIT_SUPERIOR, paramBean);
        }

        /*
         *名称： Update
         *功能： 更新家访计划对象(完成)。
         *参数： paramBean - 更新对象
         *返回： 更新记录数
         *说明： 家访计划 update 
        */
        public int FinishPlan(HealthVisitPlanBean paramBean, HealthVisitPlanBean insertBean)
        {
            if (insertBean == null)
            {
                return base.Update(FINISH_MEMBER_VISIT, paramBean);
            }
            else
            {
                try
                {
                    base.BeginTransaction();
                    int result = base.Update(FINISH_MEMBER_VISIT, paramBean);
                    Insert(insertBean,false);
                    base.CommitTransaction();
                    return result;
                }
                catch (Exception e)
                {
                    base.RollBackTransaction();
                    throw e;
                }
            }
        }

        /*
         *名称： Delete
         *功能： 删除家访计划对象。
         *参数： paramBean - 删除对象
         *返回： 删除记录数
         *说明： 家访计划 delete 
        */
        public int Delete(HealthVisitPlanBean paramBean)
        {
            return base.Delete(DELETE_MEMBER_VISIT, paramBean);
        }
    }
}
